package bean;

import javax.servlet.*;
import javax.servlet.annotation.*;
import java.io.IOException;

/**
 *  value 表示过滤的资源路径
 *  * 表示0~个字符 =》 匹配多个地址
 */
@WebFilter(filterName = "EncodingFilter" ,value = "*.s")
public class EncodingFilter implements Filter {
    public void init(FilterConfig config) throws ServletException {
        System.out.println("EncodingFilter 初始化");
    }

    public void destroy() {
        System.out.println("EncodingFilter 销毁");
    }

    @Override
    public void doFilter(ServletRequest request, //不带http 不限定过滤的请求类型
                         ServletResponse response,
                         FilterChain chain)     //chain 过滤器链对象
            throws ServletException, IOException {
        //字符集要早早的设置
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        //默认设置资源类型返回的结果类型是json  后续可以改
        response.setContentType("application/json;charset=utf-8");

        //doFilter 为后续过滤器
        //执行后续过滤器方法，如果没有后续过滤器，那么请求将会送达目标资源
        chain.doFilter(request, response);
        //在请求到达目标资源后， 响应过程会执行  过滤器链后面的代码
        System.out.println("EncodingFilter 执行过滤(后)");
    }
}
